package com.settlement.system.model.entity.common;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serializable;

/**
 * 收退款-账号
 * @author Ximi
 * @since 2020-07-07
 */
@Data
@ExcelIgnoreUnannotated
@HeadStyle(fillBackgroundColor = 9,fillForegroundColor = 9)
@HeadRowHeight(value = 20)
@HeadFontStyle(fontHeightInPoints = 14)
public class TblReceiveRefundAccount extends BaseModel implements Serializable {


    /**
     * 网站
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "网站")
    @ApiModelProperty(value = "网站")
    @NotNull(message = "网站不能为空")
    private String websiteUrl;

    /**
     * 渠道
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "渠道")
    @ApiModelProperty(value = "渠道")
    @NotNull(message = "渠道不能为空")
    private String channelName;

    /**
     * 渠道编码
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "渠道编码")
    @ApiModelProperty(value = "渠道编码")
    private String channelNo;

    /**
     * 登陆账号
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "登陆账号")
    @ApiModelProperty(value = "登陆账号")
    private String loginAccount;

    /**
     * 密码变量名
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "密码变量名")
    @ApiModelProperty(value = "密码变量名")
    private String password;

    /**
     * 店铺账号
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "店铺账号")
    @ApiModelProperty(value = "店铺账号")
    private String shopAccount;

    /**
     * NC_店铺
     */
    @ColumnWidth(30)
    @ExcelProperty(value = "NC_店铺")
    @ApiModelProperty(value = "NC_店铺")
    private String ncShopName;

    /**
     * NC_店铺编码
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "NC_店铺编码")
    @ApiModelProperty(value = "NC_店铺编码")
    private String ncShopNo;

    /**
     * 零售店铺编码
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "零售店铺编码")
    @ApiModelProperty(value = "零售店铺编码")
    private String shopNo;

    /**
     * 零售店铺名称
     */
    @ColumnWidth(30)
    @ExcelProperty(value = "零售店铺名称")
    @ApiModelProperty(value = "零售店铺名称")
    private String shopName;

    /**
     * 原始账单_店铺账号
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "原始账单_店铺账号")
    @ApiModelProperty(value = "原始账单_店铺账号")
    private String originShopNo;

    /**
     * NC_虚拟账户
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "NC_虚拟账户")
    @ApiModelProperty(value = "NC_虚拟账户")
    private String ncVirtualAccount;

    /**
     * NC_客户档案
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "NC_客户档案")
    @ApiModelProperty(value = "NC_客户档案")
    private String ncCustomerMerchantRecord;

    /**
     * NC_地区分类
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "NC_地区分类")
    @ApiModelProperty(value = "NC_地区分类")
    private String ncRegionClassfy;

    /**
     * NC_渠道
     */
    @ColumnWidth(16)
    @ExcelProperty(value = "NC_渠道")
    @ApiModelProperty(value = "NC_渠道")
    @NotNull(message = "NC_渠道不能为空")
    private String ncChannelName;

    /**
     * 虚拟账户名称
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "虚拟账户名称")
    @ApiModelProperty(value = "虚拟账户名称")
    private String ncVirtualAccountName;

    /**
     * 账簿简称
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "账簿简称")
    @ApiModelProperty(value = "账簿简称")
    private String ncEnterAccountBody;

    /**
     * 账簿体系
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "账簿体系")
    @ApiModelProperty(value = "账簿体系")
    @NotNull(message = "账簿体系不能为空")
    private String accountBookSystem;

    /**
     * 核算账簿编码
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "核算账簿编码")
    @ApiModelProperty(value = "核算账簿编码")
    private String checkAccountBookNo;

    /**
     * 是否是资金账户
     */
    private String isCapitalAccount;



    public String toUniqueString() {
        return "TblReceiveRefundAccount{" +
                "websiteUrl='" + websiteUrl + '\'' +
                ", channelName='" + channelName + '\'' +
                ", originShopNo='" + originShopNo + '\'' +
                ", ncEnterAccountBody='" + ncEnterAccountBody + '\'' +
                ", accountBookSystem='" + accountBookSystem + '\'' +
                ", shopNo='" + shopNo + '\'' +
                '}';
    }

}
